1. Technical Field
This invention relates to image processors, and more particularly to an image processor for detecting edges and lines.
2. Discussion
The vast quantity of data available in the form of aerial, satellite and other types of imagery far exceeds the processing capacity of current computing environments. Consequently, there exists a need for systems that can rapidly and automatically detect objects given large quantities of imagery, representing unpredictable scenes and objects.
The tasks of computer vision systems fall generally into three classes: low level, middle level and high level. Low level analysis involves decomposing the raw image into easily manipulatable visual primitives such as regions and lines and their attributes such as color, texture, size, shape, orientation, length, etc. The middle level process, is concerned with analyzing the lines and regions found in the low level process and finding, for example, certain geometric shapes and patterns. High level analysis operates on the extended geometric features to arrive at a recognition and description of the objects in the scene.
The present invention is concerned primarily with improvements in low level image processing. The raw image input for low level processing typically comprises intensity changes in an image that are due in part to reflectance, depth, orientation and illumination discontinuities. The organization of significant local intensity changes (edges) into more coherent global events (lines or boundaries) is an early but important step in the transformation of the visual signal into useful intermediate constructs for middle and upper level interpretative processes. Over the past twenty years a number of methods have been developed for edge detection. These include:
1) a simple thresholded convolution (e.g. Sobel operator, Roberts cross operator) within a fixed sized two dimensional window followed by a "thinning" operation on the resulting data; PA1 2) a Laplacian operator within a two dimensional processing window coupled with an algorithm to detect "zero-crossings"; PA1 3) the Haralick facet model algorithm; and PA1 4) the Nevatia-Babu algorithm.
Even with these and other current methods, the generation of line segments has remained a difficult problem requiring time consuming edge chaining and line segmenting algorithms. Thus, it would be desirable to provide a technique for generating edges and line segments that is faster and more accurate than previous methods.
Besides slowness, the above techniques for edge detection have a number of other drawbacks. For example, images having a variety of resolutions and contrasts are difficult to handle due to the use of a fixed two dimensional window or patch. There are two problems resulting from the use of a fixed window: 1) when an edge is larger than the window, you get either no edge or multiple edges; and 2) if a window is too large, it blurs details by averaging data within the window. While using multiple window sizes is one approach to this problem, the complexity of sorting out the resulting data from the various window sizes has limited the usefulness of that technique. As a result, it would be desirable to provide an image processor that can handle image features of many different resolutions equally well with fewer spurious or missed edges.
A related problem caused by a fixed two dimensional window size is the resulting sensitivity to thresholds. If a window size is too small, only a part of an edge is measured. The convolution then gives a measure of only part of the intensity change, and a threshold set to detect the intensity change of an entire edge would be too high and would ignore the edge. Decreasing the threshold would result in multiple edges where only a single edge exists. Consequently, it would be desirable to provide an image processor that can properly discriminate between high and low contrast image features without being too sensitive to the threshold setting.